999 END 1000 BS=40960:FL$="FILE NAME.ZML":GOTO1630 1010 B=PEEK(AD):AD=AD+1:IFB=32THEN1010 1020 RETURN 1030 AA=AD 1040 B=PEEK(AA):AA=AA+1:IFB=32THEN1040 1050 RETURN 1060 GOSUB1010:IFB<>0THENPRINTB:GOTO1730 1070 RETURN 1080 N=0 1090 GOSUB1010:IFB<48 OR B>57 THEN RETURN 1100 N=N*10+(B-48):GOTO1090 1110 NH=INT(NN/256):NL=NN-(NH*256):RETURN 1120 GOSUB1110:PRINT MID$(HX$,(NHAND240)/16+1,1);MID$(HX$,(NHAND15)+1,1); 1130 PRINTMID$(HX$,(NLAND240)/16+1,1);MID$(HX$,(NLAND15)+1,1);:RETURN 1140 BX=BX+1:IFP<>3 THEN ML=ML+1:RETURN 1150 POKE ML,Z:ML=ML+1:RETURN 1160 IFP<>1THENSP=SP+1:SL=SL+1:RETURN 1170 POKESP,Z:SP=SP+1:SL=SL+1:RETURN 1180 IFP<>3THENRETURN 1190 DX=DX+1:POKE DW,NL:POKE DW+1,NH:DW=DW+2:RETURN 1200 GOSUB1010:IFB>64THEN1220 1210 G=1:AD=AD-1:GOSUB1080:AD=AD-1:NN=N:GOTO1240 1220 GOSUB1250 1230 G=0:B=B-65:NN=(B*2)+679 1240 B=PEEK(AD):GOSUB1110:RETURN 1250 IF(B<65 OR B>90)THEN5360 1260 RETURN 1270 Z=173:GOSUB1140:Z=NL:GOSUB1140:Z=NH:GOTO1140 1280 Z=173:GOSUB1140:Z=NL+1:GOSUB1140:Z=NH:GOTO1140 1290 Z=141:GOSUB1140:Z=NL:GOSUB1140:Z=NH:GOTO1140 1300 Z=141:GOSUB1140:Z=NL+1:GOSUB1140:Z=NH:GOTO1140 1310 Z=169:GOSUB1140:Z=NL:GOTO1140 1320 Z=169:GOSUB1140:Z=NH:GOTO1140 1330 Z=173 1332 GOSUB1140:Z=VL:GOSUB1140:Z=VH:GOTO1140 1340 Z=173 1342 GOSUB1140:Z=VL+1:GOSUB1140:Z=VH:GOTO1140 1350 Z=141:GOSUB1140:Z=VL:GOSUB1140:Z=VH:GOTO1140 1360 Z=141:GOSUB1140:Z=VL+1:GOSUB1140:Z=VH:GOTO1140 1370 NL=MS(H,0):NH=MS(H,1):RETURN 1380 GOSUB1140:Z=NL:GOSUB1140:Z=NH:GOTO1140 1390 GOSUB1140:Z=NL+1:GOSUB1140:Z=NH:GOTO1140 1400 GOSUB1140:Z=NL:GOTO1140 1410 GOSUB1140:Z=NH:GOTO1140 1420 Z=165:GOSUB1140:Z=Y:GOTO1140 1430 Z=162:GOSUB1140:Z=Y:GOTO1140 1440 Z=161:GOSUB1140:Z=Y:GOTO1140 1450 Z=145:GOSUB1140:Z=Y:GOTO1140 1460 Z=160:GOSUB1140:Z=Y:GOTO1140 1470 Z=133:GOSUB1140:Z=Y:GOTO1140 1480 Z=56:GOTO1140 1490 Z=24:GOTO1140 1500 Z=32:GOSUB1140:Z=YL:GOSUB1140:Z=YH:GOTO1140 1510 Z=76:GOSUB1140:Z=YL:GOSUB1140:Z=YH:GOTO1140 1520 Z=233:GOSUB1140:Z=NL:GOTO1140 1530 Z=233:GOSUB1140:Z=NH:GOTO1140 1540 Z=105:GOSUB1140:Z=NL:GOTO1140 1550 Z=105:GOSUB1140:Z=NH:GOTO1140 1560 Z=237:GOSUB1140:Z=NL:GOSUB1140:Z=NH:GOTO1140 1570 Z=237:GOSUB1140:Z=NL+1:GOSUB1140:Z=NH:GOTO1140 1580 Z=109:GOSUB1140:Z=NL:GOSUB1140:Z=NH:GOTO1140 1590 Z=109:GOSUB1140:Z=NL+1:GOSUB1140:Z=NH:GOTO1140 1600 Z=Y1:GOSUB1140:Z=Y2:GOTO1140 1610 Z=Y1:GOSUB1140:Z=Y2:GOSUB1140:Z=Y3:GOTO1140 1620 Z=169:GOSUB1140:Z=Y:GOTO1140 1625 POKE56333,127:POKE1,PEEK(1)AND251:POKE768,167:POKE769,2:RETURN 1627 POKE1,PEEK(1)OR4:POKE56333,129:POKE768,V1%:POKE769,V2%:RETURN 1630 LX=3:XX=0:ZP=BS+80:P=1:ZM=ZP:SK=-1:V1%=PEEK(768):V2%=PEEK(769) 1640 DIM LL%(999,1),FS(6,4),LI%(LX,5),MS(5,3),OC%(3,1) 1650 GOSUB5500:SYS759 1660 FORI=0TOLX:FORJ=0TO5:READLI%(I,J):NEXT:NEXT:BX=0:DX=0:F2=0 1670 AD=PEEK(43)+PEEK(44)*256:GOSUB1627:PRINT"[147] ***** PASS";P;" *****" 1680 SP=ZP:ML=ZM 1690 NM=PEEK(AD)+PEEK(AD+1)*256 1700 LN=PEEK(AD+2)+PEEK(AD+3)*256:IFLN>999THEN1740 1710 GOSUB1627:PRINT" COMPILING LINE #"MID$(STR$(LN),2):GOSUB1625 1720 IFP=2THENLL%(XX,0)=LN:LL%(XX,1)=ML-32768:XX=XX+1 1730 AD=AD+4:GOSUB1010:GOTO1790 1740 IFP=1THENP=2:ZM=SP:R1=ZM:LA=SP:U1=BX:BX=0:GOTO1670 1750 IFP=2THENP=3:ZM=LA:R2=ZM:GOSUB5420:DB=LA+BX+4:DW=DB:U2=BX:BX=0:GOTO1670 1760 U3=BX:GOSUB4760:GOSUB1627:PRINT"DONE!":GOSUB1625 1770 IFPEEK(ML-1)<>96THENZ=96:GOSUB1140 1780 GOSUB1627:GOTO4450 1790 IFB=136THEN3610:REM LET 1800 IFB=153THEN2020:REM PRINT 1810 IFB=128THEN2300:REM END 1820 IFB=137THEN2170:REM GOTO 1830 IFB=141THEN2230:REM GOSUB 1840 IFB=142THEN2300:REM RETURN 1850 IFB=139THEN2320:REM IF 1860 IFB=151THEN2600:REM POKE 1870 IFB=129THEN2710:REM FOR 1880 IFB=130THEN2960:REM NEXT 1890 IFB=135THEN3320:REM READ 1900 IFB=140THEN3420:REM RESTORE 1910 IFB=131THEN3470:REM DATA 1920 IFB=156THEN3510:REM CLR 1930 IFB=143THEN2000:REM REM 1940 IFB=161THEN3530:REM GET 1950 IFB=158THEN4300:REM SYS 1960 REM THIS LINE ASSUMES LET 1970 AD=AD-1:GOTO3610 1980 SYSBS:END 1990 FORI=0TOXX-1:PRINTLL%(I,0),LL%(I,1)+32768:NEXT 2000 AD=NM:GOTO1690 2010 REM HANDLE PRINT 2020 GOSUB1010:IFB=199THEN3250 2030 IFB>64 THEN2110 2040 IFB<>34THEN2150 2050 SL=0:NN=SP:GOSUB1110 2060 B=PEEK(AD):AD=AD+1:IF((B=0)OR(B=34))THEN2080 2070 Z=B:GOSUB1160:GOTO2060 2080 GOSUB1310:Y=34:GOSUB1470:GOSUB1320:Y=35:GOSUB1470 2090 Y=SL:GOSUB1430:YL=61:YH=3:GOSUB1500:GOSUB1010:IFB<>59THEN2150 2095 GOTO2000 2100 REM HANDLE PRINT 2110 IFB<65 OR B>91 THEN5360 2120 B=B-65:NN=(B*2)+679:GOSUB1110:GOSUB1010:W=B 2130 GOSUB1280:Z=174:GOSUB1380:YL=55:YH=3:GOSUB1500:IFW<>59THEN2150 2135 GOTO2000 2140 REM HANDLE PRINT 2150 YL=64:YH=3:GOSUB1500:GOTO2000 2160 REM HANDLE GOTO 2170 GOSUB1080:IF P<>3 THEN2210 2180 IFXX=0THEN5380 2190 F2=0:FORI=0TO(XX-1):IFLL%(I,0)=NTHENF2=1:NN=LL%(I,1)+32768 2200 NEXT:IFF2=0THEN5380 2210 GOSUB1110:YL=NL:YH=NH:GOSUB1510:GOTO2000 2220 REM HANDLE GOSUB 2230 GOSUB1080:IF P<>3 THEN2210 2240 IFXX=0THEN5380 2250 F2=0:FORI=0TO(XX-1):IFLL%(I,0)=NTHENF2=1:NN=LL%(I,1)+32768 2260 NEXT:IFF2=0THEN5380 2270 GOSUB1110:Z=32:GOSUB1140:Z=NL:GOSUB1140:Z=NH:GOSUB1140:GOTO2000 2280 GOSUB1110:YL=NL:YH=NH:GOSUB1500:GOTO2000 2290 REM HANDLE RETURN 2300 Z=96:GOSUB1140:GOTO2000 2310 REM HANDLE IF 2320 GOSUB1010:IFB<65 OR B>90 THEN5360 2330 B=B-65:NN=(B*2)+679:GOSUB1110:VH=NH:VL=NL 2340 GOSUB1010 2350 IFB=177THENF1=1:GOTO2390:REM > 2360 IFB=178THENF1=2:GOTO2390:REM = 2370 IFB=179THENF1=3:GOTO2390:REM < 2380 GOTO5360:REM SYNTAX ERROR 2390 F3=0:GOSUB1010:IFB<65THEN2420 2400 GOSUB1250:F3=1:B=B-65:NN=(B*2)+679:GOSUB1110:GOTO2430 2410 REM IF <=> 2420 AD=AD-1:GOSUB1080:AD=AD-1:NN=N:GOSUB1110 2430 GOSUB1480:GOSUB1330:IFF3THENGOSUB1560:GOTO2450 2440 GOSUB1520 2450 Y=2:GOSUB1470:GOSUB1340:IFF3THENGOSUB1570:GOTO2470 2460 GOSUB1530 2470 Y1=5:Y2=2:GOSUB1600 2480 IFF1<>3THEN2500 2490 Y1=240:Y2=5:GOSUB1600:Y1=176:Y2=3:GOSUB1600:GOTO2530 2500 IFF1<>2THEN2520 2510 Y1=208:Y2=3:GOSUB1600:GOTO2530 2520 Y1=144:Y2=5:GOSUB1600:Y1=240:Y2=3:GOSUB1600:GOTO2530 2530 GOSUB1010:IFB<>167THEN5360 2540 GOSUB1080:IF P<>3 THEN2580 2550 IFXX=0THEN5380 2560 F2=0:FORI=0TO(XX-1):IFLL%(I,0)=NTHENF2=1:NN=LL%(I,1)+32768 2570 NEXT:IFF2=0THEN5380 2580 GOSUB1110:YL=NL:YH=NH:GOSUB1510:GOTO2000 2590 REM HANDLE POKE 2600 GOSUB1200:VL=NL:VH=NH:TT=G:GOSUB1010:IFB<>44THEN5360 2610 GOSUB1200:IFTTTHENY=VH:GOSUB1430:Y=VL:GOSUB1460:GOTO2630 2620 Z=174:GOSUB1342:Z=172:GOSUB1332 2630 IFGTHENGOSUB1310:GOTO2650 2640 GOSUB1270 2650 YL=73:YH=3:GOSUB1500:GOTO2000 2700 REM HANDLE FOR 2710 GOSUB1010:IFB<65 OR B>90 THEN5360 2720 B=B-65:NN=(B*2)+679:GOSUB1110:VH=NH:VL=NL 2730 SK=SK+1:FS(SK,3)=NN:FS(SK,4)=0:FS(SK,1)=1 2740 GOSUB1010:IFB<>178THEN5360 2750 GOSUB1010:IF B>64THEN2800 2760 REM START = CONSTANT 2770 AD=AD-1:GOSUB1080:NN=N:GOSUB1110:GOSUB1310:GOSUB1350:GOSUB1320:GOSUB1360 2780 AD=AD-1:GOTO2810 2790 REM START = VARIABLE 2800 B=B-65:NN=(B*2)+679:GOSUB1110:GOSUB1270:GOSUB1350:GOSUB1280:GOSUB1360 2810 GOSUB1010:IFB<>164THEN5360 2820 GOSUB1010:IF B>64THEN2860 2830 REM TO = CONSTANT 2840 AD=AD-1:GOSUB1080:AD=AD-1:FS(SK,0)=N:GOTO2870 2850 REM TO = VARIABLE 2860 B=B-65:NN=(B*2)+679:FS(SK,0)=NN:FS(SK,4)=FS(SK,4) OR 2 2870 FS(SK,2)=ML:GOSUB1010:IFB=0THEN2000 2880 REM HANDLE STEP 2890 IFB<>169THEN5360 2900 GOSUB1010:IF B>64THEN2940 2910 REM STEP = CONSTANT 2920 AD=AD-1:GOSUB1080:AD=AD-1:FS(SK,1)=N:GOTO2000 2930 REM STEP = VARIABLE 2940 B=B-65:NN=(B*2)+679:FS(SK,1)=NN:FS(SK,4)=FS(SK,4) OR 4 : GOTO2000 2950 REM HANDLE NEXT 2960 IFSK=-1THEN5390 2970 NN=FS(SK,3):GOSUB1110:VL=NL:VH=NH 2980 NN=FS(SK,1):GOSUB1110 2990 GOSUB1490:GOSUB1330 3000 IF(FS(SK,4)AND4)=4 THEN3020 3010 GOSUB1540:GOTO3030 3020 GOSUB1580 3030 GOSUB1350 3040 GOSUB1340 3050 IF(FS(SK,4)AND4)=4 THEN3070 3060 GOSUB1550:GOTO3080 3070 GOSUB1590 3080 GOSUB1360 3090 NN=FS(SK,2):GOSUB1110:AL=NL:AH=NH 3100 NN=FS(SK,0):GOSUB1110 3110 GOSUB1480:GOSUB1330 3120 IF(FS(SK,4)AND2)=2 THEN3140 3130 GOSUB1520:GOTO3150 3140 GOSUB1560 3150 Y=2:GOSUB1470 3160 GOSUB1340 3170 IF(FS(SK,4)AND2)=2 THEN3190 3180 GOSUB1530:GOTO3200 3190 GOSUB1570 3200 Y1=5:Y2=2:GOSUB1600 3210 Y1=240:Y2=2:GOSUB1600:Y1=176:Y2=3:GOSUB1600 3220 YL=AL:YH=AH:GOSUB1510 3230 SK=SK-1:GOTO2000 3240 REM HANDLE PRINT CHR$() 3250 GOSUB1010:IFB<>40THEN5360 3260 GOSUB1010:IFB>64THEN3280 3270 AD=AD-1:GOSUB1080:Y=(N AND 255):GOSUB1620:GOTO3300 3280 B=B-65:NN=(B*2)+679:GOSUB1110 3290 GOSUB1270 3300 YL=58:YH=3:GOSUB1500:GOSUB1010:IFB<>59THEN2150 3305 GOTO2000 3310 REM HANDLE READ 3320 IFP<>2 THEN3370 3330 IFLI%(1,5)=1THEN3350 3340 F2=1:NN=LA:GOSUB1110:LI%(1,3)=NL:LI%(1,4)=NH:LI%(1,5)=1:LA=LA+LI%(1,2) 3350 IFLI%(0,5)=1THEN3370 3360 NN=LA:GOSUB1110:LI%(0,3)=NL:LI%(0,4)=NH:LI%(0,5)=1:LA=LA+LI%(0,2) 3370 GOSUB1010:B=B-65:NN=(B*2)+679:GOSUB1110 3380 YL=LI%(1,3):YH=LI%(1,4):GOSUB1500 3390 GOSUB1290 3400 Z=142:GOSUB1390:GOTO2000 3410 REM HANDLE RESTORE 3420 IFP<>2THEN3450 3430 IFLI%(0,5)=1THEN3450 3440 F2=1:NN=LA:GOSUB1110:LI%(0,3)=NL:LI%(0,4)=NH:LI%(0,5)=1:LA=LA+LI%(0,2) 3450 YL=LI%(0,3):YH=LI%(0,4):GOSUB1500:GOTO2000 3460 REM HANDLE DATA 3470 GOSUB1010:AD=AD-1:IFB=0THEN2000 3480 GOSUB1080:NN=N:GOSUB1110:GOSUB1180:IFB=44THEN3480 3490 GOTO2000 3500 REM HANDLE CLR 3510 NN=BS+64:GOSUB1110:YL=NL:YH=NH:GOSUB1500:GOTO2000 3520 REM HANDLE GET 3530 GOSUB1010:GOSUB1250 3540 B=B-65:NN=(B*2)+679:GOSUB1110:VH=NH:VL=NL 3550 YL=67:YH=3:GOSUB1500:GOSUB1290 3560 Y=0:GOSUB1620 3570 GOSUB1300:GOTO2000 3580 REM 3590 REM HANDLE LET 3600 REM 3610 GOSUB1200:IFGTHEN5360 3620 GOSUB1010:IF(NN<>709)OR((B<>69)AND(B<>79))THEN3630 3622 NN=847:IFB=69THENNN=849 3624 GOSUB1110:GOSUB1010 3630 VL=NL:VH=NH:IFB<>178THEN5360 3640 GOSUB1030 3650 REM HANDLE FUNCTIONS HERE 3660 IFB=194THEN4350: REM PEEK 3670 GOSUB1200:GOSUB1010:OP=0 3680 MS(0,0)=NL:MS(0,1)=NH:MS(0,2)=G:MS(0,3)=NN 3690 IF((B=0)OR(B=58))THENSE=B:GOTO3760 3700 OP=B:RO=B:IFOP=175THENOP=172 3710 IFOP=176THENOP=173 3720 IFRO=172THENOP=174 3730 IFRO=173THENOP=175 3740 GOSUB1200:GOSUB1010 3750 MS(1,0)=NL:MS(1,1)=NH:MS(1,2)=G:MS(1,3)=NN:SE=B 3760 IFOP<>0THEN3840 3770 H=0:GOSUB1370:IFMS(0,2)THEN3810 3780 REM = 3790 GOSUB1270:GOSUB1350:GOSUB1280:GOSUB1360:GOTO3820 3800 REM = 3810 GOSUB1310:GOSUB1350:GOSUB1320:GOSUB1360 3820 IFSE=58THEN3610 3830 GOTO2000 3840 IF((OP<170)OR(OP>173))THEN4070 3850 REM HANDLE ADDITION & SUBTRACTION 3860 IFMS(0,2)+MS(1,2)<>2 THEN3920 3870 REM = <+-> 3880 REM GOSUB 500 3890 IFOP=170THEN NN=MS(0,3)+MS(1,3):GOSUB1110:GOTO3810 3900 IFOP=171THEN NN=MS(0,3)-MS(1,3):GOSUB1110:GOTO3810 3910 GOTO5360 3920 IFOP=170THENZ=24:GOSUB1140 3930 IFOP=171THENZ=56:GOSUB1140 3940 H=0:GOSUB1370:N1=NL:N2=NH:IFMS(0,2)THENGOSUB1310:GOTO3960 3950 GOSUB1270 3960 Z=OC%(OP-170,MS(1,2)):TT=Z 3970 H=1:GOSUB1370:N3=NL:N4=NH:IFMS(1,2)THENGOSUB1400:GOTO3990 3980 GOSUB1380 3990 GOSUB1350 4000 NL=N1:NH=N2:IFMS(0,2)THENGOSUB1320:GOTO4020 4010 GOSUB1280 4020 Z=TT:NL=N3:NH=N4:IFMS(1,2)THENGOSUB1410:GOTO4040 4030 GOSUB1390 4040 GOSUB1360 4050 IFSE=58THEN3610 4060 GOTO2000 4070 IFOP=175THEN4130 4080 IFOP<>174THEN5360 4090 IFP<>2THEN4160 4100 IFLI%(3,5)=1THEN4160 4110 F2=1:NN=LA:GOSUB1110:LI%(3,3)=NL:LI%(3,4)=NH:LI%(3,5)=1:LA=LA+LI%(3,2) 4120 GOTO4160 4130 IFP<>2THEN4160 4140 IFLI%(2,5)=1THEN4160 4150 F2=1:NN=LA:GOSUB1110:LI%(2,3)=NL:LI%(2,4)=NH:LI%(2,5)=1:LA=LA+LI%(2,2) 4160 H=0:GOSUB1370:IFMS(0,2)THEN4180 4170 GOSUB1270:Y=5:GOSUB1470:GOSUB1280:Y=6:GOSUB1470:GOTO4190 4180 GOSUB1310:Y=5:GOSUB1470:GOSUB1320:Y=6:GOSUB1470 4190 H=1:GOSUB1370:IFMS(1,2)THEN4210 4200 GOSUB1270:Y=3:GOSUB1470:GOSUB1280:Y=4:GOSUB1470:GOTO4220 4210 GOSUB1310:Y=3:GOSUB1470:GOSUB1320:Y=4:GOSUB1470 4220 IFOP=174THEN4250 4230 Z=32:GOSUB1140:Z=LI%(2,3):GOSUB1140:Z=LI%(2,4):GOSUB1140 4240 Y=5:GOSUB1420:GOSUB1350:Y=6:GOSUB1420:GOSUB1360:GOTO4270 4250 Z=32:GOSUB1140:Z=LI%(3,3):GOSUB1140:Z=LI%(3,4):GOSUB1140 4260 Y=163:GOSUB1420:GOSUB1350:Y=164:GOSUB1420:GOSUB1360 4270 IFSE=58THEN3610 4280 GOTO2000 4290 REM HANDLE SYS 4300 GOSUB1200:IFGTHEN4320 4310 Z=172:GOSUB1380:Z=174:GOSUB1390:GOTO4330 4320 Y=NL:GOSUB1460:Y=NH:GOSUB1430 4330 Z=32:GOSUB1140:Z=70:GOSUB1140:Z=3:GOSUB1140:GOTO2000 4340 REM HANDLE PEEK 4350 GOSUB1010:GOSUB1010:IFB<>40THEN5360 4360 GOSUB1200:IFGTHENY=NL:GOSUB1460:Y=NH:GOSUB1430:GOTO4380 4370 Z=172:GOSUB1380:Z=174:GOSUB1390 4380 YL=76:YH=3:GOSUB1500 4382 GOSUB1350:NL=0:GOSUB1310:GOSUB1360:GOSUB1010:IFB<>41THEN5360 4390 GOSUB1010:IFB=58THEN3610 4400 GOTO2000 4440 REM THIS IS FILE SAVE ROUTINE 4450 GOSUB5440 4460 H=INT(BS/256):L=BS-H*256 4470 POKE253,L:POKE254,H 4480 H=INT((DW+2)/256):L=(DW+2)-H*256 4490 POKE63,L:POKE64,H 4500 DV=PEEK(186):IFDV<8THENDV=8 4510 OPEN2,DV,2,FL$+",P,W" 4520 POKE53265,PEEK(53265)AND239 4530 SYS820 4540 PRINT"[147]":POKE53265,PEEK(53265)OR16 4570 REM PRINT COMPILE INFO 4580 PRINTFL$" INFO.":PRINT"PRESS P FOR PRINTER (DEVICE 4)," 4582 PRINT"ANY OTHER KEY FOR SCREEN." 4584 POKE198,0:WAIT198,1:GETA$:IFA$="P"THEN OPEN 4,4,7:CMD 4 4590 PRINT"START........ "BS 4600 PRINT"STRING POOL.. "ZP 4610 PRINT"RUNTIME LIB.. "SP 4620 PRINT"CODE START... "LA 4630 PRINT"CODE END .... "DB-1 4640 PRINT"CODE SIZE.... "(DB-1)-LA"BYTES" 4660 PRINT"DATA AREA.... "DB 4670 PRINT"PROG END..... "DW+2 4680 PRINTTAB(14);"-------------------" 4690 PRINT"TOTAL SIZE... "(DW+2)-BS"BYTES" 4710 PRINT:PRINT:PRINT" ZIP 64, COPYRIGHT (C) 2001 BY" 4720 PRINTTAB(9);"J & F PUBLISHING INC." 4730 PRINTTAB(10);"ALL RIGHTS RESERVED" 4735 IF A$="P" THEN PRINT#4:CLOSE4 4740 END 4750 REM HANDLE RUNTIME LIBRARY 4760 GOSUB1627:PRINT"[147]BUILDING RUNTIME LIBRARY...":GOSUB1625 4770 FORI=BSTOBS+47:POKEI,0:NEXT:FORI=BS+48TOBS+62:POKEI,234:NEXT 4780 POKEBS+63,96:POKEBS,32:NN=BS+48:GOSUB1110:POKEBS+1,NL:POKEBS+2,NH 4790 READ D$:FORI=1TOLEN(D$):POKEBS+9+I,ASC(MID$(D$,I,1)):NEXT 4800 FORI=BS+64TOBS+74:READD:POKEI,D:NEXT 4810 POKEBS+51,32:NN=BS+64:GOSUB1110:POKEBS+52,NL:POKEBS+53,NH 4820 POKE BS+3,76:NN=LA:GOSUB1110:POKEBS+4,NL:POKEBS+5,NH 4830 IFF2<>1THENRETURN 4840 FORI=0TOLX 4850 IFLI%(I,5)<>1 THEN4900 4860 REM INSTALL LIBRARY 4870 ON(I+1)GOSUB5032,5062,5132,5222 4880 NT=LI%(I,3)+(LI%(I,4)*256):NC=LI%(I,2)-1 4890 FF=0:FORJ=0TONC:READD:IFSGN(D)<>-1THEN 4896 4892 IF FF=1THEN FF=0:D=NH:GOTO4896 4894 NN=ABS(D)+BS:GOSUB1110:FF=1:D=NL 4896 POKENT+J,D:NEXT 4900 NEXT 4910 IFLI%(0,5)<>1THEN4940 4920 NN=DB:GOSUB1110:POKEBS+6,NL:POKEBS+7,NH:NN=DW:GOSUB1110:POKEBS+8,NL 4930 POKEBS+9,NH:POKEBS+48,32:POKEBS+49,LI%(0,3):POKEBS+50,LI%(0,4) 4940 RETURN 4950 REM LIB ARRAY DATA 4960 DATA 176,19,11,0,0,0 :REM RESTORE 4970 DATA 206,19,43,0,0,0 :REM READ 4980 DATA 20,20,59,0,0,0 :REM DIVIDE 4990 DATA 110,20,48,0,0,0 :REM MULTIPLY 5000 DATA "ZIP 64 (C) 2001 J & F PUBLISHING" 5010 DATA 162,88,169,0,157,167,2,202 5020 DATA 16,250,96 5030 REM THIS IS LIBRARY RESTORE 5032 SYS759:RETURN 5040 DATA 173,-6,-1,133,65,173,-7,-1 5050 DATA 133,66,96 5060 REM *** THIS IS LIBRARY READ *** 5062 SYS759:RETURN 5070 DATA 165,65,205,-8,-1,208,12,165 5080 DATA 66,205,-9,-1,208,5,162,13 5090 DATA 108,0,3,160,0,177,65,72 5100 DATA 200,177,65,170,24,165,65,105 5110 DATA 2,133,65,165,66,105,0,133 5120 DATA 66,104,96 5130 REM *** THIS IS LIBRARY DIVIDE *** 5132 SYS759:RETURN 5140 DATA 165,3,5,4,208,5,162,20 5150 DATA 108,0,3,169,0,133,163,133 5160 DATA 164,162,16,6,5,38,6,38 5170 DATA 163,38,164,56,165,163,229,3 5180 DATA 168,165,164,229,4,144,6,230 5190 DATA 5,133,164,132,163,202,208,227 5200 DATA 165,163,141,217,2,165,164,141 5210 DATA 218,2,96 5220 REM *** LIBRARY MULTIPLY *** 5222 SYS759:RETURN 5230 DATA 169,0,133,165,133,166,162,16 5240 DATA 70,4,102,3,144,11,24,165 5250 DATA 165,101,5,133,165,165,166,101 5260 DATA 6,106,133,166,102,165,102,164 5270 DATA 102,163,202,208,227,165,165 5280 DATA 141,217,2,165,166,141,218,2 5290 DATA 96 5360 ER$="SYNTAX ERROR":GOTO5400 5370 ER$="BAD COMMAND":GOTO5400 5380 ER$="UNDEF'D STATEMENT":GOTO5400 5390 ER$="NEXT WITHOUT FOR":GOTO5400 5400 GOSUB1627:PRINT "[ERROR][146][154] " ER$" IN LINE"LN:END 5410 REM FIXUP LINE NUMBERS 5420 N=R2-R1:IFN=0THENRETURN 5430 FORI=0TOXX-1:LL%(I,1)=LL%(I,1)+N:NEXT:RETURN 5440 SYS759:FORI=820TO935:READQ:POKEI,Q:NEXT:RETURN 5450 DATA 32,204,255,162,2,32,201,255,165,253,32,210,255,165,254,32,210 5460 DATA 255,32,157,3,120,169,48,133,1,177,253,145,251,196,63,208,6,165 5470 DATA 254,197,64,240,13,200,208,239,230,254,230,252,165,252,201,8 5475 DATA 208,229,132,113,165,252,133,114,32,157,3,169,55,133,1,88,177,251 5480 DATA 32,210,255,196,113,208,6,165,252,197,114,240,14,200,208,238 5485 DATA 230,252,165,252,201,8,208,230,76,70,3,169,2,32,195,255,32,204 5490 DATA 255,96,169,0,133,251,169,4,133,252,160,0,96 5500 OC%(0,0)=109:OC%(0,1)=105:OC%(1,0)=237:OC%(1,1)=233 5510 OC%(2,0)=45:OC%(2,1)=41:OC%(3,0)=13:OC%(3,1)=9 5520 HX$="0123456789ABCDEF" 5530 POKE759,165:POKE760,61:POKE761,133:POKE762,65:POKE763,165:POKE764,62 5532 POKE765,133:POKE766,66:POKE767,96 5540 SYS759:FORI=679TO703:READQ:POKEI,Q:NEXT:POKE692,V1%:POKE697,V2%:RETURN 5550 DATA165,1,9,4,133,1,169,129,141,13,220,88,169,139,141,0,3,169,227,141,1,3 5560 DATA108,0,3 9998 : 9999 REM * SCRATCH & SAVE * 10000 FL$="Z.FILE NAME":DV=8 10001 OPEN15,DV,15:PRINT#15,"S0:"+FL$:CLOSE15:SAVE FL$,DV:END 10002 : 19998 REM * LIST TO PRINTER * 19999 REM (SET TO DEVICE 4 & EMULATE) 20000 P=PEEK(646):POKE646,PEEK(53281):PRINT"[147]PRINT#1:CLOSE1":POKE646,P 20001 POKE631,19:POKE632,13:POKE198,2:OPEN1,4,7:CMD1:LIST-999:END